export interface FriendInfo {
  id: number;
  userId: number;
  username: string;
  nickname: string;
  avatar: string;
  online: boolean;
  lastOnlineTime: string;
  status: "online" | "offline" | "busy";
  unreadCount: number;
}

export interface FriendRequestInfo {
  id: number;
  senderId: number;
  senderName: string;
  senderAvatar: string;
  receiverId: number;
  receiverName?: string;
  receiverAvatar?: string;
  status: "pending" | "accepted" | "rejected";
  createdAt: string;
  message: string;
}

export interface MessageInfo {
  id: number;
  senderId: number;
  senderName: string;
  senderAvatar: string;
  receiverId: number;
  content: string;
  type: "text" | "image" | "file" | "emoji";
  status: "sent" | "delivered" | "read";
  createdAt: string;
  fileUrl?: string;
  fileName?: string;
  fileSize?: number;
}

export interface ChatSession {
  friendId: number;
  friendName: string;
  friendAvatar: string;
  lastMessage: string;
  lastMessageTime: string;
  unreadCount: number;
}

export interface MessageRequestParams {
  pageSize?: number;
  pageNum?: number;
  friendId: number | string;
}

export interface MessageRequestResult {
  messages: MessageInfo[];
  total: number;
}
